//1 - 使用node就可以构建一个web服务器
const http = require('http');

// 2 - 使用 http.createServer()方法创建一个web服务器
// 返回一个 Server实例

const server = http.createServer();

// 3 - 服务器 -> 提供服务  发请求  接收请求   处理请求   给个反馈（发送响应）
server.on('request',function (request,response) { 
    // 当服务器收到响应，自动触发 服务器的 request 事件，二个参数，回调处理
    // Request -> 请求对象 用来获取客户端的一些请求信息，例如请求路径
    // Response -> 响应对象 可以用来给客户端发送响应消息；
    console.log('收到客户端的请求,请求路径是' + request.url + request.method);// 返回的是请求路径，比如：3000/a -> a

    // response 对象有一个方法，write 可以用来给客户端发送相应数据
    // write 方法可以使用多次，但是结尾必须有一个 end（） 方法作为结束
    /* response.write('hello,nodejs'); // 然后访问这个地址 浏览器显示的就是 ‘hello nodejs’
    response.write('hello,nodejs');
    response.end(); */

    // 现在的问题是无论浏览器是什么请求，都只能响应上边这些，希望对应不同路径
    // 响应不同的结果  
    // 比如 /a -> 'hello'
    // /b -> '123'
    // /c -> 'dfssdfs'

    // write 比较繁琐 可以直接写end
    //response.end('hello');// -> 响应内容必须是二进制或者是字符串；
    let url = request.url;
    if(url === '/products'){
        let products = [
            {
                name: 'HuaWei',
                price: 3699
            },
            {
                name: 'Vivo',
                price: 2299
            },
            {
                name: 'XiaoMi',
                price: 2569
            }
        ];

        response.end(JSON.stringify(products));// -> 响应内容必须是二进制或者是字符串;
    }


});

// 4 - 绑定端口号，启动服务器
server.listen(3000,function () {
    console.log('服务器可以访问了，可以通过 localhost：3000');
});